﻿using System;

namespace Black.Surface2DEngine.Graphic2D.Render2D.Process2D
{
    /// <summary>
    /// Arguments pour la fin d'un processus 2D
    /// </summary>
    public class Process2DArgs: EventArgs
    {
        #region Indexer

        /// <summary>
        /// Retourne l'entité concernée
        /// </summary>
        public Entity2D Entity2D
        {
            get;
            private set;
        }

        /// <summary>
        /// Retourne si le processus à été intérompu
        /// </summary>
        public bool IsKilled
        {
            get;
            private set;
        }

        /// <summary>
        /// Retourne si le processus à été terminée manuellement
        /// </summary>
        public bool IsManualEnd
        {
            get;
            private set;
        }

        #endregion

        #region Constructeurs

        /// <summary>
        /// Constructeur de la classe
        /// </summary>
        /// <param name="p_oEntity">Entité 2D concernée</param>
        public Process2DArgs(Entity2D p_oEntity)
        {
            this.Entity2D = p_oEntity;
            this.IsKilled = false;
            this.IsManualEnd = false;
        }

        /// <summary>
        /// Constructeur de la classe
        /// </summary>
        /// <param name="p_oEntity">Entité 2D concernée</param>
        /// <param name="p_bIsKilled">TRUE à été intérompu par l'action 'Killed'</param>
        /// <param name="p_bIsManualEnd">TRUE annulé manuellement, FALSE sinon</param>
        public Process2DArgs(Entity2D p_oEntity, bool p_bIsKilled, bool p_bIsManualEnd)
        {
            this.Entity2D = p_oEntity;
            this.IsKilled = p_bIsKilled;
            this.IsManualEnd = p_bIsManualEnd;
        }

        #endregion
    }
}
